from salary.settings import Corpid_, payroll_Scret, payroll_Agentid
import requests
import json


def GetToken(Corpid, Secret):
    Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
    Data = {
        "corpid": Corpid,
        "corpsecret": Secret
    }
    r = requests.get(url=Url, params=Data, verify=False)
    Token = r.json()['access_token']
    return Token


def SendMessage(Token, Agentid, Subject, Content, Msgtype, url):
    Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
    if Msgtype == 'text':
        Data = {
            "touser": User,  # 企业号中的用户帐号，在zabbix用户Media中配置，如果配置不正常，将按部门发送。
            "totag": Tagid,  # 企业号中的部门id，群发时使用。
            "msgtype": "text",  # 消息类型。
            "agentid": Agentid,  # 企业号中的应用id。
            "text": {
                "content": Subject + '\n' + Content
            },
            "safe": "0"
        }
    elif Msgtype == 'textcard':
        Data = {
            "touser": User,  # 企业号中的用户帐号，在zabbix用户Media中配置，如果配置不正常，将按部门发送。
            # "totag": Tagid,  # 企业号中的部门id，群发时使用。
            "msgtype": "textcard",  # 消息类型。
            "agentid": Agentid,  # 企业号中的应用id。
            "textcard": {
                "title": Subject,
                "description": Content,
                "url": url,
                "btntxt": '查看明细'
            },
        }
    else:
        return False
    r = requests.post(url=Url, data=json.dumps(Data), verify=False)
    return r.json()


def PutWechatMessage(subject, msgtype, content, url):
    global User, Subject, Content, Tagid
    User = "@all"  # 信息接收对象

    Subject = subject  # 主题
    Content = content  # 内容
    Msgtype = msgtype  # 消息类型，具体用法参考：https://work.weixin.qq.com/api/doc/90000/90135/90236
    Corpid = Corpid_  # CorpID是企业号的标识
    Secret = payroll_Scret  # Secret是管理组凭证密钥
    Agentid = payroll_Agentid  # 应用ID
    Token = GetToken(Corpid, Secret)
    get = SendMessage(Token, Agentid, Subject, Content, Msgtype, url)
    return get
